package com.itheima.sentinel.exception;

import com.alibaba.csp.sentinel.slots.block.BlockException;

public class ExceptionUtils {
    
    /*
     * @Description: 降级方法
     * 注意（坑）：
     * 1、name参数必须携带过来否则无法调用
     * 2、方法必须为static，否则无法调用
     * @Method: testFallback
     * @Param: [name]
     * @Update:
     * @since: 1.0.0
     * @Return: java.lang.String
     *
     */
    public static String testFallback(String name, Throwable e) {
        return "异常降级处理...." + name;
    }
    
    /*
     * @Description: 限流方法
     * 注意（坑）：
     * 1、name参数必须携带过来否则无法调用testBlockHandler方法
     * 2、参数必须设置BlockException e参数，否则，流控降级的时候会进入到异常降级方法
     * (前提是异常方法加入了Throwable，当前方法没有加BlockException)
     * 3、、方法必须为static，否则无法调用
     * @Method: testBlockHandler
     * @Param: [name]
     * @Update:
     * @since: 1.0.0
     * @Return: java.lang.String
     *
     */
    public static String testBlockHandler(String name, BlockException e) {
        return "流控降级（限流）" + name;
    }
    
}
